#ifndef cexceptions__Throwable_h
#define cexceptions__Throwable_h

#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <stdio.h>
#include <printf.h>
#include <cexceptions/Throwable.h>

struct _Throwable{
  int type;
  int code;
  char * message;
  char * file;
  int line;
  Throwable_t previous;
};

int _Throwable_printf(FILE * stream, const struct printf_info *info, const void *const *args);
int _Throwable_printf_arginfo(const struct printf_info *info, size_t n, int *argtypes, int *size);

#endif